2007-03-08 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkasync.c (send_event_handler): Defer the callbacks
to an idle to avoid deadlock with xcb-ified libX11. (#413032,
Sebastian Dröge)
svn path=/trunk/; revision=17436
+2007-03-08 Matthias Clasen <mclasen@redhat.com>
+
+ * gdk/x11/gdkasync.c (send_event_handler): Defer the callbacks
+ to an idle to avoid deadlock with xcb-ified libX11. (#413032,
+ Sebastian Dröge)
+
2007-03-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_real_insert_page):
gulong get_input_focus_req;
};
+static gboolean
+callback_idle (gpointer data)
+{
+ SendEventState *state = (SendEventState *)data;
+
+ state->callback (state->window, !state->have_error, state->data);
+
+ g_free (state);
+
+ return FALSE;
+}
+
static Bool
send_event_handler (Display *dpy,
xReply *rep,
}
if (state->callback)
- state->callback (state->window, !state->have_error, state->data);
+ gdk_threads_add_idle (callback_idle, state);
DeqAsyncHandler(state->dpy, &state->async);
- g_free (state);
-
return (rep->generic.type != X_Error);
}